package com.bilisummarize.service;

import com.bilisummarize.bean.ResponseType;
import org.springframework.stereotype.Service;

//import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;

@Service
public interface BiliService {
    /**
     * 如果视频已有总结，则返回总结；
     * 如果视频没有总结，返回空；
     */
    ResponseType getSummarize(String url);

    /**
     * 如果视频已有总结，则返回总结；
     * 如果视频没有总结，返回空；
     */
    ResponseType getSummarizeWithDetail(Integer aid, Integer cid);


    /**
     * 如果视频已有总结，则返回已有的总结；
     * 如果视频没有总结，则提取字幕并生成一个新的总结，存入数据库并返回；
     */
    ResponseType summarize(String url, String sessdata, HttpServletResponse httpServletResponse);


    /**
     * 如果视频已有总结，则返回已有的总结；
     * 如果视频没有总结，则请求字幕url并生成一个新的总结，存入数据库并返回；
     */
    ResponseType summarizeWithDetail(Integer aid, Integer cid, String subtitleUrl, String title, HttpServletResponse httpServletResponse);


    /**
     * 如果视频已有总结，则将已有的总结和对话作为上下文，形成新的聊天记录；
     * 如果视频没有总结，则返回错误。
     */
    ResponseType chat(String url, String sessdata, String userText, HttpServletResponse httpServletResponse);

    /**
     * 如果视频已有总结，则将已有的总结和对话作为上下文，形成新的聊天记录；
     * 如果视频没有总结，则返回错误。
     */
    ResponseType chatWithDetail(Integer aid, Integer cid, Integer userId, String userText, HttpServletResponse httpServletResponse);

    /**
     * 获取用户剩余积分
     */
    ResponseType getUserScore(Integer userId);
}
